Это специальная команда которая загружает 1 байт в регистр AL по адресу DS:SI и изменяет потом регистр SI в зависимости от флага направления. Итак, смотрим сразу код
MODEL SMALL
STACK 256
DATASEG
str1 DB 'firststeps $'
CODESEG
Start:
mov ax,@data ; установка в ds адpеса
mov ds,ax ; сегмента данных
mov cl,10 ; настройка счетчика
mov si,OFFSET str1 ; адрес строки
cld ; направление
WriteLoop:
lodsb ; Загрузить символ
mov dl,al ; для вывода
Call WriteChar
loop WriteLoop
Exit:
CALL ExitProgramm
INCLUDE function.asm
End Start
У нас есть строка в сегменте данных. Эта строка адресуется по отношению к регистру DS. Это регистр данных. Вы все про это знаете. Командой
mov si,OFFSET str1
Мы указываем SI на смешение относительно сегмента данных. Но он же у нас DS, вот и получается правильная адресация ds:si проверим в отладчике.

Смотрим дальше после команды lodsb измениться AL и SI. В AL будет загружено значение а SI увеличиться на 1.

Дальше все просто, я вывожу символ воспользовавшись функций из шага Шаг 36 - Функция 02h Вывод символа и организовав цикл через LOOP. Все повториться, SI будет увеличен и в AL новый символ.